home *** CD-ROM | disk | FTP | other *** search
- /*
- * Copyright 1980 Kenneth C. R. C. Arnold and The Regents of the
- * University of California. Permission is granted to freely
- * distribute curses and its documentation provided that this
- * notice is left intact.
- */
-
- #ifndef lint
- static char sccsid[] = "@(#)twinkle2.c 6.1 (Berkeley) 4/24/86";
- #endif not lint
-
- extern int _putchar();
-
- main()
- {
- reg char *sp;
-
- srand(getpid()); /* initialize random sequence */
-
- if (isatty(0)) {
- gettmode();
- if ((sp = getenv("TERM")) != NULL)
- setterm(sp);
- signal(SIGINT, die);
- }
- else {
- printf("Need a terminal on %d\n", _tty_ch);
- exit(1);
- }
- _puts(TI);
- _puts(VS);
-
- noecho();
- nonl();
- tputs(CL, NLINES, _putchar);
- for (;;) {
- makeboard(); /* make the board setup */
- puton('*'); /* put on '*'s */
- puton(' '); /* cover up with ' 's */
- }
- }
-
- puton(ch)
- char ch;
- {
- reg LOCS *lp;
- reg int r;
- reg LOCS *end;
- LOCS temp;
- static int lasty, lastx;
-
- end = &Layout[Numstars];
- for (lp = Layout; lp < end; lp++) {
- r = rand() % Numstars;
- temp = *lp;
- *lp = Layout[r];
- Layout[r] = temp;
- }
-
- for (lp = Layout; lp < end; lp++)
- /* prevent scrolling */
- if (!AM || (lp->y < NLINES - 1 || lp->x < NCOLS - 1)) {
- mvcur(lasty, lastx, lp->y, lp->x);
- putchar(ch);
- lasty = lp->y;
- if ((lastx = lp->x + 1) >= NCOLS)
- if (AM) {
- lastx = 0;
- lasty++;
- }
- else
- lastx = NCOLS - 1;
- }
- }
-